#include <iostream>
using namespace std;

//泛型编程--模板
//template<typename T>

template<class T>
T Add(const T& left, const T& right)
{
	return left + right;
}


int main()
{
	int a1 = 10, a2 = 20;
	double d1 = 10.11, d2 = 20.22;
	// 实参传递给形参，自动推演模板类型
	cout << Add(a1, a2) << endl;
	cout << Add(d1, d2) << endl;
	cout << Add(a1, (int)d1) << endl;
	cout << Add((double)a1, d1) << endl;

	// 显示实例化
	cout << Add<int>(a1, d1) << endl;
	cout << Add<double>(a1, d1) << endl;
	return 0;
}

/*
void test2(){
    int a = 10, b = 22;
    double c = 22.2, d = 33.3;
    Swap<int>(a,c);

}

int main() {

    return 0;
}
*/
